软件工程导论(第6版)期末复习必看简答题

您所在的位置:网站首页 软件工程 期末试题 软件工程导论(第6版)期末复习必看简答题

软件工程导论(第6版)期末复习必看简答题

2024-07-05 22:36| 来源: 网络整理| 查看: 265

目录

前言

第一章:软件工程学概述

1.什么是软件危机?它有哪些典型表现?

2.什么是软件工程?它有哪些本质特性?软件工程基本原理有哪些?

3.什么是软件生命周期和软件生命周期模型?说明每种模型的优缺点?

第二章:可行性研究

1.可行性分析的任务是什么?从哪些方面进行可行性分析?

2.数据流图的基本成分有哪些?数据字典的基本成分有哪些?

3.数据字典和数据流图的关系是什么?

第三章:需求分析

1. 需求分析的基本任务是什么?

2. 验证软件需求从哪些方面进行?

3.如何进行需求分析?

第五章:总体设计

1. 模块化是什么意思?目的是什么?

2. 模块独立性由哪两个指标来衡量?分别是什么含义?

3. 面向数据流的设计方法中,数据流图可以分类哪两种类型?各自特点是什么?(简述)

第六章:详细设计

1. 详细设计中,程序流程图、N-S图、PAD图的优缺点分别是什么?

2. 判定表和判定树的适用条件是什么?

3. McCabe环形复杂度的计算方法有几种?简述一种计算方法。

第七章:实现

1. 什么是软件测试?

2. 软件测试准则有哪几条?

3. 白盒测试常用的方法有哪些?黑盒测试常用方法有哪些?

第八章:维护

1. 什么是软件维护?

2. 软件维护可以分为几类?每类所占的比例是什么?

3. 如何评价软件的可维护性?

第十三章:软件项目管理

1.估算软件规模的方法有哪些?

2.软件质量的含义是什么?

3.CMM可以分为哪几个等级?

总结

前言

        作为期末复习系列首篇文章,这个系列见名知意,目的在于为期末考试做准备,目前计划整理本学期科目的知识点及相关重点习题,本次为大家带来的是清华大学出版的第6版软件工程导论的简答题,因为按学校课程安排整理,部分章节暂时未涉及。如有错误之处,烦请指出,不胜感激。

第一章:软件工程学概述 1.什么是软件危机?它有哪些典型表现?

 答:软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重问题。        

        典型表现有:

对软件开发成本和进度的估计常常很不准确;软件产品的质量往往靠不住;用户对已完成的软件系统不满意的现象经常发生;软件常常是不可维护的;软件中没有适当的文档资料;软件成本在计算机系统总成本所占的比例逐年上升;软件开发生产率提高的速度,往往跟不上计算机应用迅速普及深入的趋势。 2.什么是软件工程?它有哪些本质特性?软件工程基本原理有哪些?

答:软件工程是一门研究和应用如何以系统化、规范化、可度量的方法开发和维护软件的工程学科。

        它的本质特性包括:

软件工程关注于大型程序的构造。软件工程的中心课题是分解问题,控制复杂性。软件是经常变化的,开发过程中必须考虑软件将来可能的变化。开发软件的效率非常重要。和谐地合作是开发软件的关键。软件必须有效地支持它的用户。在软件工程领域中通常由具有一种文化背景的人替代另一种具有文化背景的人创造产品。

        软件工程的基本原理有:

用分阶段的生存周期计划进行严格的管理。坚持进行阶段评审。实行严格的产品控制。采用现代程序设计技术。软件工程结果应能清楚地审查。开发小组的人员应该少而精。承认不断改进软件工程实践的必要性 。 3.什么是软件生命周期和软件生命周期模型?说明每种模型的优缺点?

答:软件生命周期模型是指软件开发过程中,由软件定义、软件开发和运行维护三个时期组成的整个过程。

软件生命周期模型是指在软件开发过程中,将软件的生命周期划分成那些阶段以及各个阶段执行顺序的框架。

常见的软件生命周期模型有瀑布模型、快速原型模型、增量模型、螺旋模型和喷泉模型。

瀑布模型(文档驱动模型):

优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

缺点:开发过程一般不能逆转,否则代价太大;实际的项目开发很难严格按该模型进行;客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

快速原型模型:

优点:可以得到比较良好的需求定义,容易适应需求的变化;有利于开发与培训的同步;开发费用低、开发周期短且对用户更友好。

缺点:客户与开发者对原型理解不同;准确的原型设计比较困难;不利于开发人员的创新。

增量模型:

优点:第一个可交付版本的成本和时间较低,从而降低了由增量开发带来的系统开发风险;由于很快发布的第一个版本,因此可以减少用户需求的变更;允许增量投资,即在项目开始是可以仅对一个或两个增量投资。

缺点:如果没有对用户的需求变更进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;由于进度和配置的复杂性,可能会增大管理成本,超出组织的能力。

螺旋模型(风险驱动模型):

优点:设计灵活,可以在项目的各个阶段进行变更;使成本计算变得简单容易;客户始终参与每个阶段的开发。

缺点:需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;过多的迭代次数会增加开发成本,延迟提交时间。

喷泉模型:

优点:喷泉模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

第二章:可行性研究 1.可行性分析的任务是什么?从哪些方面进行可行性分析?

答:可行性分析的任务是在尽可能短的时间内确定软件项目是否能够开发,是否值得开发,是否符合用户的期望和需求。

        从以下几个方面进行可行性分析:

技术可行性:使用现有的技术能实现这个系统吗?(自身团队角度)经济可行性:这个系统的经济效益能超过它的开发成本吗?(甲方客户角度)操作可行性:系统的操作方式在这个用户组织内行得通吗?(用户角度)

必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。

2.数据流图的基本成分有哪些?数据字典的基本成分有哪些?

答:数据流图的基本成分有:源点或终点,数据流,数据存储,处理。

        数据字典的基本成分有:数据流,数据流分量,数据存储,处理。

3.数据字典和数据流图的关系是什么?

答:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典和数据流图的关系是:

        数据字典是数据流图的定义,数据流图是数据字典的应用;

        数据字典是数据流图的细化,数据流图是数据字典的概括;

        数据字典是数据流图的解释,数据流图是数据字典的展示。数据流图和数据字典同时存在才有意义。

第三章:需求分析 1. 需求分析的基本任务是什么?

答:需求分析的基本任务是深入具体地了解用户的需求,在所要开发的系统必须做什么这个问题上和用户取得一致的看法,确定系统的功能需求和非功能需求,给出目标系统的逻辑模型。

2. 验证软件需求从哪些方面进行?

答:验证软件需求从以下方面进行:

一致性:所有需求必须是一致的,任何一条需求都不能和其他需求互相矛盾。完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。 3.如何进行需求分析?

答:获取原始需求,写出需求陈述,建立模型,请用户评价模型并修正模型,撰写规格说明。

第五章:总体设计 1. 模块化是什么意思?目的是什么?

答:模块化是指将软件系统划分为若干个相对独立的、功能完备的、可重用的、易于维护的子系统或模块的过程。

目的是降低软件的复杂度,提高软件的可理解性、可维护性、可测试性、可重用性等。

2. 模块独立性由哪两个指标来衡量?分别是什么含义?

答:模块独立性由内聚性和耦合性两个指标来衡量。

内聚性是指一个模块内部各个元素彼此结合的紧密程度,高内聚意味着模块内部的联系紧密,功能单一,逻辑清晰。

耦合性是指不同模块之间互连程度的度量,低耦合意味着模块之间的联系松散,接口简单,影响小。

3. 面向数据流的设计方法中,数据流图可以分类哪两种类型?各自特点是什么?(简述)

答:在面向数据流的设计方法中,数据流图可以分类为变换流和事务流两种类型。

变换流是指信息沿着输入通路进入系统,同时将信息的外部形式转换成内部表示,然后通过变换中心处理,再沿着输出通路转换成外部形式离开系统。(单输入单输出)事务流是指信息沿着输入通路到达一个事务中心,事务中心根据输入信息的类型在若干个动作序列中选择一个来执行。(单输入多输出) 第六章:详细设计 1. 详细设计中,程序流程图、N-S图、PAD图的优缺点分别是什么?

答:程序流程图:优点是直观、易于理解、广泛使用;缺点是不适合描述复杂的逻辑结构、不利于模块化、不符合结构化的原则。

        N-S图:优点是符合结构化的原则、能表示复杂的逻辑结构、易于模块化;缺点是不够直观、需要额外的说明、不适合描述并行和循环的情况。

        PAD图:优点是能表示复杂的逻辑结构、易于模块化、适合描述并行和循环的情况;缺点是不够直观、需要额外的说明、不符合结构化的原则。

2. 判定表和判定树的适用条件是什么?

答:

判定表适用条件: 当存在多个条件组合的判定时,判定表更为适用。用于表示复杂的条件逻辑。当需要生成测试用例时,判定表可以帮助确定测试用例的组合。 判定树适用条件: 当判断逻辑具有层次结构时,判定树更为适用。对于简单的条件判断,判定树可以更直观地表示逻辑流程。当需要进行可视化展示时,判定树通常更易于理解。 3. McCabe环形复杂度的计算方法有几种?简述一种计算方法。

答:McCabe环形复杂度的计算方法有三种:

流图中线性无关的区域数等于环形复杂度。流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

        简述一种计算方法:

假设我们有一个流程图,其中E是边的数量,N是节点的数量。那么,我们可以通过公式V(G)=E-N+2来计算环形复杂度。这个公式的含义是,环形复杂度等于边的数量减去节点的数量,再加上2。这种方法可以帮助我们量化程序的逻辑复杂度,从而更好地理解和管理程序的结构。

第七章:实现 1. 什么是软件测试?

答:软件测试是指对软件产品或系统进行检验,以发现和消除其中的错误,保证软件的质量和功能的一系列活动。

2. 软件测试准则有哪几条?

答:软件测试的准则有以下几条:

测试应“尽早地不断地进行”。较早的确定测试计划,严格的执行测试计划。注意错误的群集现象和应用Pareto原理。测试规模应从小到大。测试应一般由独立的第三方进行。应保证测试用例的准确性和有效性。应保存所有的测试用例和出错统计等,直到软件不用为止。 3. 白盒测试常用的方法有哪些?黑盒测试常用方法有哪些?

答:白盒测试:

逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。控制结构测试:基本路径测试、条件测试、循环测试。

        黑盒测试:

        等价划分、边界值分析、错误推测和因果图分析。

第八章:维护 1. 什么是软件维护?

答:软件维护是指在软件交付使用后,为了改正错误或满足新的需要而修改软件的过程。

2. 软件维护可以分为几类?每类所占的比例是什么?

答:软件维护可以分为4类。

(1)改正性维护占比20%;(2)适应性维护占比25%;(3)完善性维护占比50%;(4)预防性维护占比5%。

改正性维护:指为了修正软件产品中存在的错误而进行的维护。适应性维护:指为了使软件产品能够适应软硬件环境的变化而进行的维护。完善性维护:指为了提高软件产品的性能、可靠性、安全性、易用性等而进行的维护。预防性维护:指为了预防未来可能出现的问题而进行的维护。 3. 如何评价软件的可维护性?

答:软件的可维护性是指软件产品在规定的条件下,对预期或未预期的变化进行识别、分析、修改和确认所需的工作量和时间的度量。

评价软件的可维护性可以从可理解性、可测试性、可修改性、可移植性、可重用性几个方面进行。

第十三章:软件项目管理 1.估算软件规模的方法有哪些?

答:常用的估算软件规模方法包括以下几种:

1. 功能点估算方法(Function Point Estimation):

   - 公式:FP = UFP x CAF

   - 其中,FP表示功能点数,UFP表示未调整功能点数,CAF表示复杂性调整因子。

   - UFP的计算基于软件的功能需求,根据功能点的类型(输入、输出、查询、文件、接口)和复杂性进行计算。

   - CAF用于根据软件的特定特征和环境进行调整,例如数据通信、性能要求、安全性要求等。

2. 源代码行数估算方法(Source Lines of Code Estimation):

   - 公式:SLOC = KLOC x L

   - 其中,SLOC表示源代码行数,KLOC表示千行代码数,L表示平均每行代码的长度。

   - KLOC的估算可以通过历史数据、类似项目的经验或功能点估算方法得出。

   - L的估算可以通过统计项目中的源代码行数和总代码长度得出。

3. 使用案例点估算方法(Use Case Points Estimation):

   - 公式:UCP = UUCP x TCF x ECF

   - 其中,UCP表示使用案例点数,UUCP表示未调整使用案例点数,TCF表示技术复杂性因子,ECF表示环境复杂性因子。

   - UUCP的计算基于软件的使用案例,根据使用案例的类型和复杂性进行计算。

   - TCF用于根据软件的技术特征进行调整,例如架构、性能、可靠性等。

   - ECF用于根据软件的环境特征进行调整,例如用户界面、数据管理、安全性等。

2.软件质量的含义是什么?

答:软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应具有的隐含特征相一致的程度。

3.CMM可以分为哪几个等级?

答:CMM(能力成熟度模型)可以分为以下五个等级,从低到高依次是:

初始级:指软件过程是无序的,没有明确的规范和标准,软件开发的成功依赖于个人的努力和能力。可重复级:指软件过程有一定的规划和管理,能够重复使用以前成功的经验和方法,能够控制成本和进度。已定义级:指软件过程有明确的定义和标准,能够根据组织的目标和策略进行定制和优化,能够提高质量和生产率。已管理级:指软件过程有量化的目标和度量,能够通过数据分析和反馈进行监控和控制,能够保证过程的稳定性和一致。优化级:指软件过程有持续改进的机制,能够通过创新和技术引入进行过程的优化,能够预防和消除缺陷和问题。 总结

以上就是对软件工程导论的简答题的总结,后续会更新章节知识要点,敬请关注。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3